﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ContaTelefone.Data;
using ContaTelefone.Entities;

namespace ContaTelefone.Process
{
    public class ContaProcess
    {
        CONTARepository objRepository = new CONTARepository();
          
        public void Incluir(ContaEntities objEtt)
        {
            CONTA obj = new CONTA();
            obj.DATA_INICIO = objEtt.DataInicio;
            obj.DATA_FIM = objEtt.DataFim;
            
            objRepository.Add(obj);
        }

        public void Alterar(ContaEntities objEtt)
        {
            CONTA obj = objRepository.getCONTA(objEtt.ID);
            if (obj != null)
            {
                obj.DATA_INICIO = objEtt.DataInicio;
                obj.DATA_FIM = objEtt.DataFim;

                objRepository.Update();
            }
        }

        public void Delete(ContaEntities objEtt)
        {
            CONTA obj = objRepository.getCONTA(objEtt.ID);
            if (obj != null)
                objRepository.Delete(obj);
        }

        public ContaEntities getobj(int ID)
        {
            CONTA obj = objRepository.getCONTA(ID);
            if (obj != null)
            {
                ContaEntities objEtt = new ContaEntities();
                objEtt.ID = obj.ID_CONTA;
                objEtt.DataInicio = obj.DATA_INICIO;
                objEtt.DataFim = obj.DATA_FIM;

                return objEtt;
            }
            else
                return null;
        }

        public ContaEntities getobj(DateTime dtIni)
        {
            CONTA obj = objRepository.getCONTA(dtIni);
            if (obj != null)
            {
                return getobj(obj.ID_CONTA);
            }
            else
                return null;
        }

        public List<ContaEntities> Listar()
        {
            List<ContaEntities> lista = new List<ContaEntities>();

            foreach (CONTA obj in objRepository.GetCONTAs())
            {
                lista.Add(getobj(obj.ID_CONTA));
            }

            return lista;
        }
    }
}
